src/main/java/com/ruleoftech/markdown/page/generator/plugin/MdPageGeneratorMojo.java
private Map<String, Attributes> processAttributes(String[] attributeList) {
        HashMap<String, Attributes> nodeAttributeMap = new HashMap<>();

        for (String attribute : attributeList) {
            String[] nodeAttributes = attribute.split("\\|");
            Attributes attributes = new Attributes();
            for (int i = 1; i < nodeAttributes.length; i++) {
                String[] attributeNameValue = nodeAttributes[i].split("=", 2);
                if (attributeNameValue.length > 1) {
                    String value = attributeNameValue[1];
                    if (!value.isEmpty()) {
                        if (value.charAt(0) == '"' && value.charAt(value.length() - 1) == '"') {
                            value = value.substring(1, value.length() - 1);
                        } else if (value.charAt(0) == '\'' && value.charAt(value.length() - 1) == '\'') {
                            value = value.substring(1, value.length() - 1);
                        }
                    }
                    attributes.addValue(attributeNameValue[0], value);
                } else {
                    attributes.addValue(attributeNameValue[0], attributeNameValue[0]);
                }
            }
            nodeAttributeMap.put(nodeAttributes[0], attributes);
        }
        return nodeAttributeMap;
    }
private Map<String, Attributes> processAttributes(String[] attributeList) {
        HashMap<String, Attributes> nodeAttributeMap = new HashMap<>();

        for (String attribute : attributeList) {
            String[] nodeAttributes = attribute.split("\\|");
            Attributes attributes = new Attributes();
            for (int i = 1; i < nodeAttributes.length; i++) {
                String[] attributeNameValue = nodeAttributes[i].split("=", 2);
                if (attributeNameValue.length > 1) {
                    String value = attributeNameValue[1];
                    if (!value.isEmpty()) {
                        if (value.charAt(0) == '"' && value.charAt(value.length() - 1) == '"') {
                            value = value.substring(1, value.length() - 1);
                        } else if (value.charAt(0) == '\'' && value.charAt(value.length() - 1) == '\'') {
                            value = value.substring(1, value.length() - 1);
                        }
                    }
                    attributes.addValue(attributeNameValue[0], value);
                } else {
                    attributes.addValue(attributeNameValue[0], attributeNameValue[0]);
                }
            }
            nodeAttributeMap.put(nodeAttributes[0], attributes);
        }
        return nodeAttributeMap;
    }
Parse attributes of the form NodeName:attributeName=attribute value:attributeName=attribute value...

@param attributeList list of attributes
@return map of Node class to attributable part and attributes