+
+redef class MEntity
+ # ID used as a unique ID and in file names.
+ #
+ # **Must** match the following (POSIX ERE) regular expression:
+ #
+ # ~~~POSIX ERE
+ # ^[A-Za-z_][A-Za-z0-9._-]*$
+ # ~~~
+ #
+ # That way, the ID is always a valid URI component and a valid XML name.
+ fun nitdoc_id: String do return full_name.to_cmangle
+
+ # Name displayed in console for debug and tests.
+ fun nitdoc_name: String do return name.html_escape
+end
+
+redef class MModule
+
+ # Avoid id conflict with group
+ redef fun nitdoc_id do
+ if mgroup == null then return super
+ return "{mgroup.full_name}::{full_name}".to_cmangle
+ end
+end
+
+redef class MClassDef
+ redef fun nitdoc_name do return mclass.nitdoc_name
+end
+
+redef class MPropDef
+ redef fun nitdoc_name do return mproperty.nitdoc_name
+end